package com.zhongjianjian.RabbitMq.config;

import com.alibaba.fastjson.JSON;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.support.CorrelationData;
import org.springframework.beans.factory.annotation.Autowired;

import javax.annotation.PostConstruct;

/**
 * @类名: com.zhongjianjian.RabbitMq.config
 * @作者: lgt
 * @创建时间: 2020-03-03 13:15
 * @描述:进行消息的发送确认,这个发送确认是,确认发送是不是发送到交换机上,是不是被持久化到磁盘上
 **/
public class MypublishConfirm implements RabbitTemplate.ConfirmCallback {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @PostConstruct  //调用完构造方法之后,name必须运行被PostConstruct这个注解注释的方法,可以完成一些初始化的操作
    public void methodInit(){
        rabbitTemplate.setConfirmCallback(this);
    }

    @Override
    public void confirm(CorrelationData correlationData, boolean b, String s) {
        if (b){
            System.out.println("消息发送成功============="+s+"==========="+ JSON.toJSONString(correlationData));
        }else{
            System.out.println("消息发送失败============="+s+"==========="+ JSON.toJSONString(correlationData));
            //rabbitTemplate.convertAndSend();
        }
    }
}
